详解sys.builtin 您所在的位置:网站首页 python 内建 详解sys.builtin

详解sys.builtin

#详解sys.builtin| 来源: 网络整理| 查看: 265

Python中的sys.builtin_module_names属性是一个字符串元组,包含了Python解释器内置的所有模块的名字。 它可以用来获取系统中当前可用的所有模块的名称。该属性并不仅仅包含Python内置模块,还包括一些额外的C模块,如_python_ffi等。以下是sys.builtin_module_names属性的使用方法:

使用方法

1.导入模块

import sys

2.获得Python解释器内置模块列表

print(sys.builtin_module_names)

输出结果:

('_abc', '_ast', '_bisect', '_blake2', '_codecs', '_collections', '_datetime', '_elementtree', '_functools', '_heapq', '_imp', '_io', '_locale', '_md5', '_operator', '_pickle', '_posixsubprocess', '_random', '_sha1', '_sha256', '_sha3', '_sha512', '_signal', '_socket', '_sre', '_stat', '_statistics', '_string', '_struct', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', '_xxsubinterpreters', 'array', 'atexit', 'audioop', 'binascii', 'builtins', 'cmath', 'fcntl', 'gc', 'grp', 'itertools', 'marshal', 'math', 'posix', 'pwd', 'pyexpat', 'select', 'spwd', 'sys', 'syslog', 'time', 'unicodedata', 'xxsubtype', 'zlib')

其中,每个模块名字都是一个字符串类型,元组中包含了Python解释器中所有可用模块的名称,这些模块可以直接在Python代码中使用。

实例1:使用builtins模块

下面的示例展示了如何使用Python内置模块builtins,该模块包含了Python内置的函数和异常。在代码中使用了内置的函数len和异常ZeroDivisionError:

import sys import builtins # 获取内置模块列表 modules = sys.builtin_module_names # 打印每个模块中的函数和异常 for name in modules: module = builtins.__getattribute__(name) functions = [m for m in dir(module) if callable(getattr(module, m))] exceptions = [ex for ex in dir(module) if issubclass(getattr(module, ex), BaseException)] print(f"\n{name} functions: ", functions) print(f"{name} exceptions: ", exceptions)

输出结果如下:

_abc functions: ['ABC', 'ABCMeta', 'abstractmethod', 'abstractproperty', 'abstractstaticmethod', 'abstractclassmethod'] _abc exceptions: [] _ast functions: [] _ast exceptions: [] # ... functools functions: ['LRU_CACHE_MAXSIZE', 'LRU_CACHE_TYPENAME', 'cached_property', 'cmp_to_key', 'partial', 'partialmethod', 'reduce', 'total_ordering', 'update_wrapper', 'wraps'] functools exceptions: [] # ... zlib functions: ['adler32', 'compress', 'compressobj', 'crc32', 'decompress', 'decompressobj', 'error'] zlib exceptions: [] 实例2:向zipfile模块添加新方法

zipfile模块是Python标准库中的一个模块,用于在Python中读写ZIP归档文件。假设我们想要在zipfile模块中添加一个新的方法,用于列出ZIP归档文件中的所有文件名。这可以通过编辑Python标准库并修改zipfile模块中的源代码来实现,但这样做不够安全和可维护。另一种更安全的方法是使用Python的内置模块来扩展zipfile模块,而无需修改标准库代码。

下面是一个向zipfile模块添加新方法的示例,该方法可以列出ZIP归档文件中的所有文件名:

import sys import zipfile # 添加我们的新方法 def list_zip_contents(self): for zipinfo in self.infolist(): print(zipinfo.filename) # 检查zipfile是否已包含我们的新方法 if 'list_zip_contents' not in dir(zipfile.ZipFile): # 如果不存在,将方法添加到ZipFile类中 zipfile.ZipFile.list_zip_contents = list_zip_contents # 创建一个ZIP文件 with zipfile.ZipFile('example.zip', 'w') as myzip: myzip.writestr('file1.txt', 'This is a test.') myzip.writestr('file2.txt', 'This is also a test.') # 打开ZIP文件并列出其内容 with zipfile.ZipFile('example.zip') as myzip: myzip.list_zip_contents()

输出结果如下:

file1.txt file2.txt

该示例演示了如何使用Python的内置模块来扩展Python标准库中的模块,以提供自定义功能,而无需修改标准库代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解sys.builtin_module_names(获取内建模块的名称列表)属性的使用方法 - Python技术站



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有